import { ipcRenderer } from "electron";
import { IMessage, ChatType, IMessagePageInfo } from "../types/message.ts";
export const MessagePreload = {
  getMessage: (callback: Function) => {
    ipcRenderer.on("getMessage", (_event, value: IMessage) => callback(value));
  },
  updateLocalMessage: (callback: Function) => {
    ipcRenderer.on("updateLocalMessage", (_event, value: IMessage) => callback(value));
  },
  sendMessage: (data: IMessage): void => {
    ipcRenderer.send("sendMessage", data);
  },
  // 获取本地message
  getChatMessage: (sessionId: string, ownerId: number, pageInfo: IMessagePageInfo) => {
    return ipcRenderer.invoke("getChatMessage", sessionId, ownerId, pageInfo);
  },
  // 删除单个消息
  deleteMessageByOne: (sessionId: string, ownerId: number) => {
    return ipcRenderer.invoke("deleteMessageByOne", sessionId, ownerId);
  },
  // 删除全部消息
  deleteMessageByAll: (userId: number, friendId: number, chatType: ChatType) => {
    return ipcRenderer.invoke("deleteMessageByAll", userId, friendId, chatType);
  },

  // 查询所有文件
  findAllMessageFile: (userId: number, fileName: string) => {
    return ipcRenderer.invoke("findAllMessageFile", userId, fileName);
  },
  // 获取自己的文件
  getMessageFileByOnwer: (userId: number) => {
    return ipcRenderer.invoke("getMessageFileByOnwer", userId);
  },
  // 获取好友聊天文件
  getMessageFileByFriend: (userId: number, sessionId: string) => {
    return ipcRenderer.invoke("getMessageFileByFriend", userId, sessionId);
  },
  // 获取群聊天文件
  getMessageFileByGroup: (userId: number, sessionId: string) => {
    return ipcRenderer.invoke("getMessageFileByGroup", userId, sessionId);
  },

  // 更新文件本地路径
  updateMessageFilePath: (userId: number, sessionId: string, localPath: string) => {
    return ipcRenderer.invoke("updateMessageFilePath", userId, sessionId, localPath);
  },
};
